iT邦幫忙

2026 iThome 鐵人賽

DAY 1
1
Vibe Coding

別再只叫 AI 做漂亮一點:30 天 Vibe Coding UI 元件驗收實驗系列 第 1

Day 1|AI 不是不會做,是你只說「做得好看一點」

  • 分享至 

  • xImage
  •  

Day 1|AI 不是不會做,是你只說「做得好看一點」

「幫我做一個現代、漂亮、好用的工作區成員管理後台。」

我把這句話原封不動交給 AI,沒有補資料欄位、操作流程或手機版規則。為了能在瀏覽器裡檢查,我只要求它產生可開啟的靜態前端頁面,不替它補功能。

它交出的畫面是這樣:
模糊 Prompt 產生的 LumenDesk 成員管理後台:已有側欄、摘要卡、搜尋欄與成員資料表

圖 1:只看第一眼,它很像一個已經做完的 SaaS 後台。所有帳號、信箱與資料皆為虛構。

老實說,第一眼我沒有討厭它。版面乾淨,側欄、搜尋、篩選、分頁和操作按鈕都有,甚至還準備了三張摘要卡。如果我只用「像不像後台」評分,它很容易過關。

接著我真的操作了一次。

我實際點了三下,畫面就開始露出空白

這不是在挑剔 AI 沒有讀心。原始需求只給了三個形容詞,它自然只能拿常見的後台外觀把空白補起來。問題是,外觀補完了,任務還沒有。

我做的事 實際結果 需求裡少了什麼
在搜尋欄輸入 Aurora 三筆資料全部留在畫面上 搜尋範圍、觸發時機與無結果狀態。
按下「篩選」 沒有出現條件,也看不到目前套用的篩選 可用條件、套用方式與 Reset。
按下第一列的「停用」 沒有確認、結果或錯誤回饋 影響對象、取消路徑與完成後的狀態。
將瀏覽器縮到 360px 頁面實際寬度仍有 1180px,只看得到左側與一小部分內容 手機版保留哪些資料,以及導覽要怎麼收起來。
檢查非正常情況 只有一般資料表畫面 Loading、Empty、Error 與沒有權限時的下一步。

360px 手機寬度下,桌面側欄與資料表仍維持原寬,主要內容被裁在畫面外

圖 2:我把同一頁縮到 360px。不是版面稍微擠了一點,而是主要資料直接跑到可視範圍外。

把這些缺口標回原本的桌面畫面後,就能看出問題不在配色。

在模糊 Prompt 產生的後台上標出搜尋、篩選、帳號狀態、危險操作與非正常狀態等五個驗收缺口

圖 3:畫面已經有元件,但每個紅框都還缺少可以驗收的行為。

這張圖會保留到 Day 29。今天不急著把它修成完整後台,因為這正是整個系列需要的起點:同一份模糊需求,經過 28 天的元件選型與驗收練習後,我們再回來看能不能做得更清楚。

這 30 天要練的,是把畫面說清楚

你不需要先成為前端工程師或 UI 設計師。這個系列希望讓 Vibe Coder 多幾種很實用的能力:

  • 看到一個東西時,知道它常見的名稱和用途。
  • 分得出外觀相似、責任不同的元件。
  • 能把操作結果、失敗狀態和手機行為補進需求。
  • AI 做完後,知道要點哪裡、看什麼,才能決定是否交付。

整個系列只聚焦 UI 元件。後端、資料庫和商業邏輯當然重要,但這 30 天先把「使用者眼前會看到、會操作的東西」練熟。

這個系列幾乎不會出現程式碼

同一個 Button,放進 Vue、React、原生 HTML、開源套件或現成模板,程式寫法都可能不一樣。有些專案還會用相當邪門的 CSS 和腳本,把看似正常的元件拼出來。

如果每一篇都開始比較框架 API,這個系列很快就會偏離原本的問題:你到底要 AI 做出哪一種元件,它要負責什麼,又要怎麼判斷它做對了。

UI 元件也不是由某一個人替所有產品訂下唯一答案。很多名稱和使用習慣,是產品、設計系統與使用者長期磨合後留下來的做法;部分原生控制項與無障礙互動,則有更明確的規範。

你當然可以採用不同設計。只是做法越偏離常見習慣,越要把操作結果、狀態和驗收方式說清楚。AI 的第一個答案通常會回到它熟悉的介面模式;你想走另一條路,就要提供更多資訊,也要多做幾輪檢查。

所以這 30 天會維持常見、容易理解的設計,不刻意追求高度客製化。程式碼不是重點,元件怎麼用才是。

30 天會怎麼走?

前面三天先建立共同語言,後面再進入操作、輸入、導覽、訊息和資料呈現。Day 29 會回到今天這張模糊需求產生的後台,完成真正的前後比較。

Vibe Coding UI 的 30 天六階段地圖

圖 4:每個階段補上一種判斷能力,最後再回到同一個 LumenDesk 案例。

階段 天數 會處理什麼
先把話說清楚 Day 1–3 看懂畫面、說對名稱,把想法整理成可檢查的 UI Spec。
操作與輸入 Day 4–12 Button、表單、選擇、數值、日期與檔案上傳。
導覽與資訊架構 Day 13–17 讓使用者知道自己在哪裡,以及命令和階層資料怎麼找。
浮動介面與狀態 Day 18–24 Dialog、訊息、載入、錯誤和沒有資料時的下一步。
內容與資料呈現 Day 25–28 Card、List、Table 和媒體內容如何依資料關係選擇。
把整件事串起來 Day 29–30 用完整 UI Spec 重做同一案例,並驗收前後差異。

今天先把「好用」換成可以回答的問題

不用立刻寫一份很長的規格。先把形容詞換成問題就好。

當你想說 可以改問
「這頁要好用。」 誰會用這頁?他來這裡最常要完成什麼?
「資料要清楚。」 哪些欄位一定要看到?手機版可以先收起哪些?
「操作要直覺。」 搜尋、篩選或停用後,使用者會看到什麼?
「不要出錯。」 載入中、沒資料、失敗或沒有權限時,下一步是什麼?

套回 LumenDesk,可以先說成這樣:管理員要在成員清單裡找人、看帳號狀態,必要時停用帳號。停用前要能取消;手機上至少要看得到成員、狀態和下一步操作。

這還不是完整規格。它只是把「好用」拆成幾個可以繼續討論的決定。

由規格推導出的 LumenDesk UI 示意

圖 5:這是後續要逐步補齊的介面契約,不是 Day 1 已經完成的改善版。

今天不急著叫 AI 重做

第一版讓我更確定一件事:在 Vibe Coding 裡,下一句不一定是「幫我改好」。有時候更有效的做法,是先叫 AI 把它剛才偷偷替你決定的事情列出來。

你可以把下面這段換成自己的情境:

我要做一個成員管理頁,給工作區管理員使用。
他需要搜尋成員、用部門和帳號狀態篩選,必要時停用帳號。

先不要重做畫面。請列出目前版本中你自行假設的內容:

1. 搜尋會比對哪些欄位,輸入後何時更新結果?
2. 篩選有哪些條件,套用後如何顯示與清除?
3. 「暫停」和「停用」各代表什麼?
4. 停用帳號前後會出現什麼確認與回饋?
5. Loading、Empty、Error、沒有權限與 360px 手機版要怎麼處理?

不要使用真實個資。沒有被說明的地方,請標記為「待確認」。

這段 Prompt 沒有要求 AI 立刻生出第二張漂亮畫面。它先把看不見的假設攤開,讓你決定哪些可以接受、哪些必須改。Day 2 和 Day 3 會接著處理元件名稱與 UI Spec;完整改善版留到 Day 29。

小結

這次實驗裡,AI 確實做出一張像後台的畫面。但搜尋、篩選、停用、失敗狀態和手機版都無法驗收,因為原始需求沒有提供那些規則。

Day 1 不追求完美 Prompt,也不急著修完介面。先學會在一張「看起來完成」的畫面上,指出自己還不知道什麼。這就是接下來 29 天要補回來的東西。

參考資料


下一篇
Day 2|這些東西到底叫什麼?Component、Pattern、Layout 與 Template
系列文
別再只叫 AI 做漂亮一點:30 天 Vibe Coding UI 元件驗收實驗4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言